positions=[]
def diff(object1,object2,origin='/'):
    global positions
    if object1 == object2:
        pass
    elif type(object1) != type(object2):
        positions.append(origin)
    else:
        cls=type(object1)
        if cls in (dict,set,tuple,list,str):
            if len(object1) != len(object2):
                positions.append(origin)
                return positions
        if cls == dict:
            keys=object1.keys()
            for key in keys:
                if object1[key] != object2[key]:
                    diff(object1[key],object2[key],f'{origin}"{key}"/')
        elif cls in (tuple,list):
            length=len(object1)
            for i in range(length):
                if object1[i] != object2[i]:
                    diff(object1[i],object2[i],f'{origin}[{i}]/')
        else:
            positions.append(origin)
    return positions
xx={"111":None,"23456":{"22222":9999,"33333":"0000","list":["3333","4444","111"]}}
yy = {"111":None,"23456":{"22222":9999,"33333":"0000","list":["111","3333","4444"]}}
print(diff(xx,yy))
